set Keyframes
Replace the keyframe track of a block property. Keyframe times are normalized over the duration of the block, from 0 to 1. The engine sorts the keyframes by time. Setting the static value of the property does not change its keyframes. The keyframes belong to the block that owns the property. Replacing a fill, shape or effect does not move them to the new block. Scaling the block or changing the design unit also converts the keyframes of length and position properties, such as corner radii and position. Rotating or flipping the block turns or mirrors the keyframes of its position, rotation and skew with it. A group's keyframes turn with the group. A turn other than a half turn joins position/x and position/y tracks into one position track. They must share the mode, the times and the easings, and no position track may exist. Other axis tracks cannot turn: their Absolute values move with the block, and their Relative values stay. A rotation track turns a graphic or text without an anchor around its frame center, as setRotation does. With transform/anchor/x or transform/anchor/y set, even to 0, it turns around the anchor. The vec2 properties position (a block) and shape/position (a shape) animate the /x and /y properties together. Their spatialOut and spatialIn tangents curve the motion path. getVec2 and setVec2 read and write their static value. A position/x or position/y track overrides that axis of a position track. Position keyframes are in design units, also when the position mode is PositionMode.PERCENT. Required scope: "appearance/animation" and the scope that the setter of the property needs, such as "layer/move" for position or "layer/rotate" for rotation. A transform/scale/x or transform/scale/y keyframe that shows a scale with another sign than the static scale also needs "layer/flip". Experimental: this API may change in a minor release.
Parameters
the block that owns the property, for example a graphic, fill, shape or effect block.
the property path, for example fill/color/value. isPropertyAnimatable must return true.
the keyframes. At least one, with unique times from 0 to 1 and values of the property's kind.
TrackMode.ABSOLUTE replaces the static value, TrackMode.RELATIVE adds to it. Relative needs a float or vec2 property.